package 代码coding题OR模拟题;
import java.util.ArrayList;
import java.util.HashSet;
public class leetcode824 {
		public static void main(String []args) {
			System.out.print("he");
			System.out.print((char)0);
			System.out.println("hh");
			System.out.println(solution("I speak Goat Latin"));
		}
		public static String solution(String setence) {
			String str [] = setence.split(" ");
			HashSet<Character> set = new HashSet<>();
			set.add('a');
			set.add('e');
			set.add('i');
			set.add('o');
			set.add('u');
			set.add('A');
			set.add('E');
			set.add('I');
			set.add('O');
			set.add('U');
//			  这里 还 跟    单词 在句子 中的 索引 有关系 
			for(int i = 0;i < str.length ; i++) {
//				tempS = str[i];
				char ch = str[i].charAt(0);
				StringBuilder tempS = new StringBuilder(str[i]);
				if(set.contains(ch)) {
					tempS.append("ma");
//					for(int j = 0;j <= i ;j++) {
//						str[i] += 'a';
//					}
				}
				else {
					tempS.append("ma");
					tempS.append(ch);
//					tempS.setCharAt(0,(char)0);  下面的  和 这个 应该是一样的
//					tempS.setCharAt(0, '\0');
					tempS.deleteCharAt(0);
					
				}
	
				for(int j = 0; j <= i; j++) {
					tempS.append('a');
				}
				str[i] = tempS.toString();
			}
//			  这里 可以 直接初始化 底层的 value 数组的 长度 但是 以后遇到 再说吧
			StringBuilder ans = new StringBuilder();
//			for(String s : str) {
//				ans.append(s + ' ');
//			}
			for(int i = 0 ;i < str.length - 1 ;i++) {
				ans.append(str[i] +" ");
			}
			ans.append(str[str.length-1]);
//			return "";
			return ans.toString();
		}
		
		public static String solutionOne(String setence) {
			String str [] = setence.split(" ");
			HashSet<Character> set = new HashSet<>();
			set.add('a');
			set.add('e');
			set.add('i');
			set.add('o');
			set.add('u');
			set.add('A');
			set.add('E');
			set.add('I');
			set.add('O');
			set.add('U');
			for(int i = 0;i < str.length ; i++) {
				char ch = str[i].charAt(0);
				StringBuilder tempS = new StringBuilder(str[i]);
				if(set.contains(ch)) {
					tempS.append("ma");
				}
				else {
					tempS.append(ch);
					tempS.append("ma");
					tempS.deleteCharAt(0);
					
				}
	
				for(int j = 0; j <= i; j++) {
					tempS.append('a');
				}
				str[i] = tempS.toString();
			}

			StringBuilder ans = new StringBuilder();

			for(int i = 0 ;i < str.length - 1 ;i++) {
				ans.append(str[i] +" ");
			}
			ans.append(str[str.length-1]);
			return ans.toString();
		}
		
		
		/**
		 * 宫水三叶的 题解 ：
		 * 个人 感觉 她写的 代码 就是 很简洁 
		 * 每一个 for循环的 利用率 贼他妈 高
		 * 
		 * @param s
		 * @return
		 */
	    public String toGoatLatin(String s) {
	        int n = s.length();
	        String last = "a";
	        StringBuilder sb = new StringBuilder();
	        for (int i = 0; i < n; ) {
	            int j = i;
	            while (j < n && s.charAt(j) != ' ') j++;
	            if ("aeiouAEIOU".indexOf(s.charAt(i)) >= 0) {
	                sb.append(s.substring(i, j)).append("ma");
	            } else {
	                sb.append(s.substring(i + 1, j)).append(s.charAt(i)).append("ma");
	            }
	            sb.append(last);
	            last += "a";
	            i = j + 1;
	            if (i < n) sb.append(" ");
	        }
	        return sb.toString();
	    }
}
